import tkinter as tk


def create_frame_with_buttons(parent, title, button_texts):
    # 创建边框Frame
    frame = tk.Frame(parent, padx=10, pady=10, relief='ridge', borderwidth=2)
    frame.grid_rowconfigure(0, weight=0)  # 标题行
    frame.grid_rowconfigure(1, weight=1)  # 按钮行
    frame.grid_columnconfigure(0, weight=1)  # 整列

    # 创建标题Label
    title_label = tk.Label(frame, text=title, anchor='w')  # 标题左对齐
    title_label.grid(row=0, column=0, sticky='w')

    # 创建按钮并添加到Frame中
    button_row = 1
    button_col = 0
    for text in button_texts:
        button = tk.Button(frame, text=text)
        button.grid(row=button_row, column=button_col, padx=5, pady=5, sticky='nsew')
        # 切换列以实现一行两列布局
        button_col = 1 if button_col == 0 else 0
        # 如果按钮数量超过两个，需要添加到新行（但这里假设只有两个按钮）
        # 如果需要更多按钮，可以在这里添加逻辑来处理多行布局

    # 由于我们只使用了一行，所以不需要额外处理多行情况
    # 但为了自适应，我们仍然配置了列的权重
    frame.grid_columnconfigure(0, weight=1)
    frame.grid_columnconfigure(1, weight=1)

    return frame


root = tk.Tk()
root.title("双边框布局示例")

# 创建两个边框Frame并添加到主窗口中
left_frame = create_frame_with_buttons(root, "左侧边框", ["按钮1", "按钮2"])
left_frame.grid(row=0, column=0, sticky='nsew')

right_frame = create_frame_with_buttons(root, "右侧边框", ["按钮A", "按钮B"])
right_frame.grid(row=0, column=1, sticky='nsew')

# 配置主窗口的网格行和列权重以允许边框自适应展开
root.grid_rowconfigure(0, weight=1)
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=1)

# 运行主循环
root.mainloop()